#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
主题: 矩阵与线性代数运算
问题: 你需要执行矩阵和线性代数运算，比如矩阵乘法、寻找行列式、求解线性方程组等等。
提示 : 
"""


def recipe1():
    """矩阵的一些基本特性"""
    import numpy as np

    m = np.matrix([[1, -2, 3], [0, 4, 5], [7, 8, -9]])
    print(f"{m = }")
    print(f"{m.T = }")      # 转置-transpose
    print(f"{m.I = }")      # 逆 - inverse

    v = np.matrix([[2], [3], [4]])
    print(f"{v = }")
    print(f"{m * v = }")        # 当矩阵m的列数（column）等于矩阵v的行数（row）时，A与B可以相乘

    import numpy.linalg
    print(f"{numpy.linalg.det(m) = }")      # 行列式 - Determinant
    print(f"{numpy.linalg.eigvals(m) = }")      # 本征值 - Eigenvalues

    x = numpy.linalg.solve(m, v)
    print(f"{x = }")
    print(f"{m * x = }")


def main():
    print('recipe1'.center(20, '*'))
    recipe1()


if __name__ == '__main__':
    main()
